/**
 * 角色服务接口 - RBAC权限管理系统的角色业务接口
 *
 * 开发人员：马勇俐
 * 开发时间：2025-11-16 至 2025-11-20
 * 模块职责：定义角色的完整管理接口，支持角色的创建、查询、更新、删除等功能
 *
 * 技术要点：
 * - 多租户角色数据隔离和管理
 * - 角色权限关联和继承机制
 * - 内置角色和自定义角色管理
 * - 角色状态和生效范围控制
 * - RBAC权限模型的完整实现
 *
 * 开发故事：负责角色服务接口的设计和定义，与权限服务和前端角色界面深度配合，为系统提供灵活的权限管理服务。
 */
package com.pbl.service;

import com.pbl.entity.Role;

import java.util.List;

public interface RoleService {
    /**
     * 在指定企业内创建角色
     * @param enterpriseId 企业ID
     * @param r 角色对象
     * @return 创建的角色对象
     */
    Role create(Long enterpriseId, Role r);

    /**
     * 更新角色信息
     * @param id 角色ID
     * @param r 角色对象（包含更新信息）
     * @return 更新后的角色对象
     */
    Role update(Long id, Role r);

    /**
     * 获取角色详情
     * @param id 角色ID
     * @return 角色对象
     */
    Role get(Long id);

    /**
     * 删除角色
     * @param id 角色ID
     */
    void delete(Long id);

    /**
     * 获取企业内所有角色列表
     * @param enterpriseId 企业ID
     * @return 角色列表
     */
    List<Role> listByEnterprise(Long enterpriseId);
}
